﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EntityLayer;

namespace DataLayer.DAO
{
    public class clsCancelacionVentaDAO
    {
        private BDCALLCENTEREntities ContextoDeObjs = new BDCALLCENTEREntities();

        public bool Insertar(CancelacionVenta Obj)
        {
            try
            {
                ContextoDeObjs.AddObject("CancelacionVenta", Obj);
                ContextoDeObjs.SaveChanges();
                return true;
            }
            catch (Exception)
            {
                return false;
            }

        }

        public bool Modificar(CancelacionVenta obj)
        {

            try
            {
                ContextoDeObjs.AttachTo("CancelacionVenta", obj);
                ContextoDeObjs.ObjectStateManager.ChangeObjectState(obj, System.Data.EntityState.Modified);
                ContextoDeObjs.SaveChanges();
            }
            catch (Exception)
            {
                return false;

            }
            return true;
        }

        public bool Eliminar(CancelacionVenta obj)
        {
            try
            {
                ContextoDeObjs.AttachTo("CancelacionVenta", obj);
                ContextoDeObjs.DeleteObject(obj);
                ContextoDeObjs.SaveChanges();
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }

        public int TraerUltimoId()
        { 
            var q = (from d in ContextoDeObjs.CancelacionVenta
                     select new
                     {
                         d.CodigoCancelacion
                     }).OrderBy(x => x.CodigoCancelacion);

            if (q.ToList().Count > 0)
                return Convert.ToInt16(q.ToList()[q.ToList().Count - 1].CodigoCancelacion) + 1;
            else
                return (1);
        }

        public List<ActualizarDocumentoEstado_Result> ActualizarDocumentoEstado(int empresa, String tipoDoc, String nropedido)
        {
            List<ActualizarDocumentoEstado_Result> lista = new List<ActualizarDocumentoEstado_Result>();
            var q = from c in ContextoDeObjs.usp_ActualizarDocumentoEstado(empresa, tipoDoc, nropedido)
                    select c;
            lista = q.ToList();
            return lista;
        }

        public String BuscarTipoDocumento(String nropedido)
        {
            String tipodoc = null;
            var q = from c in ContextoDeObjs.usp_BuscarTipoDocumento(nropedido)
                    select c;
            tipodoc = q.ToList()[0];
            return tipodoc;
        }
           
    }
}
